#ifndef MANAGER_H
#define MANAGER_H

#include "singleton.h"

class EventManager;
class ParamManager;
class WaypointManager;
class Route;
class LockableStorage;

class Manager : public Singleton<Manager> {
public:
	void init(LockableStorage *storage, ParamManager *parammgr, WaypointManager *wptmgr, Route *route, EventManager *evtmgr);
	
	EventManager *getEventManager() const;
	ParamManager *getParamManager() const;
	WaypointManager *getWaypointManager() const;
	Route *getRoute() const;
	LockableStorage *getStorage() const;
	
private:
	Manager();

	EventManager *evtmgr_;
	ParamManager *parammgr_;
	WaypointManager *wptmgr_;
	Route *route_;
	LockableStorage *storage_;
	
	friend class Singleton<Manager>;
};

#endif
